Using Analogy and Formal Methods for Software Reuse
نویسندگان
چکیده
Using formal speciications to represent software components facilitates the determination of reusability because they more precisely characterize the func-tionality of the software, and the well-deened syntax makes processing amenable to automation. This paper presents an approach, based on formal methods, to the modiication of reusable software components. From a two-tiered hierarchy of reusable software components, the candidate components that are analogous to the query speciication are retrieved from the hierarchy. A retrieved component is compared to the query speciication to determine what changes needed to be applied to the corresponding program component in order to make it satisfy the query speciication. The major objectives of a reuse system are to classify the reusable components, to retrieve them from an existing library, and to modify the retrieved components to satisfy the query speciication. In previous investigations, the processes for classifying software components to form hierarchy of corresponding speciications and retrieving software components have been formally speciied and implemented 1, 3, 4]. Analogical reasoning has long been recognized as an important tool to overcome the search complexity of nding solutions to novel problems 2]. Retrieved components may not exactly match the query spec-iication. Analogy presents a basic and challenging question: when are two speciications (problem representations) for a given purpose, alike? Analogical reasoning techniques are used to enhance our software reuse system. This paper describes an approach to modifying retrieved components based on analogies between existing and query speciications. A top-down matching process to facilitate the modiication process based on analogies between a pair of components has been added to the reuse system. The remainder of this paper is organized as follows. Section 2 deenes analogical matching. Section 3 describes the matching algorithm used in the analogical reasoning process. Section 4 demonstrates an example application of the matching algorithm. Section 5 describes related work in the area of applying analogy to software engineering problems. Section 6 gives concluding remarks and brieey describes future investigations. An analogical match is a group of associated pairs between symbols in the logical terms term 1 and term 2 that belong to base and target speciications, respectively. Each pair in an analogical match is of the following form: ((symbol 1 ; position 1); (symbol 2 ; position 2)) where symbol 1 is located at position 1 of logical term term 1 , and similarly for symbol 2 , position 2 , and term 2. The analogical matching …
منابع مشابه
آفرینش معماری به روش قیاس با طبیعت
Architectural design inspired by nature is one of the conventional methods in architectural design, but different types of the influence of nature on architectural design are not well studied yet. In spite of the importance of the type of inspiration, there is not a significant research about the relation of this method with other methods of architectural creation, nor about the correct way of ...
متن کاملThe Role of Analogy in Reuse
The development of software systems is intensive person-oriented process. Therefore it is essential to use previous experience and knowledge. The extension of reuse through analogy is analysed in this paper. The proposed grouping of analogical methods, rules, etc., relies on their adaptability to application software development. The emphasis here is on analogue as a criterion to safeguard the ...
متن کاملAn Automated Approach for Supporting Software Reuse via Reverse Engineering
Formal approaches to software reuse rely heavily upon specification matchingcriterion, where a search query using formal specifications is used to search a library of components indexed by specifications. In previous investigations, we addressed the use of formal methods and component libraries to support software reuse and construction of software based on component specifications. A difficult...
متن کاملConstruction Using Components 1 Software Construction Using Components by James M . Neighbors
It is the thesis of this work that many computer software systems being built today are similar and should be built out of reusable software components. The appropriate use of software components is investigated by analogy to the classical engineering question of whether to build an object out of custom-made parts or standard parts and assemblies. The same analogy is used to explain some of the...
متن کاملReuse by Contract
Reuse by contract is the application of formal methods to software reuse: software components are associated with contracts|formal models of their functional behaviour|and administered , retrieved, and reused by these. We argue that reuse by contract is necessary for safe reuse in a formal process model, but is helpful even for more traditional software development. We discuss some obstacles ag...
متن کامل